package test.fr.lna.sandbox;

import java.security.InvalidParameterException;

import fr.lna.util.Tools;

/**
 * Coordonnées d'un jeu d'échec :
 * h1 h2 ... h8
 * g1 g2 ... g8
 * f1 f2 ... f8
 * e1 e2 ... e8
 * d1 d2 ... d8
 * c1 c2 ... c8
 * b1 b2 ... b8
 * a1 a2 ... a8
 * 
 * Cette représentation est basée sur le fait que la case en bas à gauche est la case a1
 * 
 * @author bull
 *
 */
public class ChessCoord implements CoordXY {

	// a1
	private String x; // 1 
	private String y; // a
	public enum ordonnee {a,b,c,d,e,f,g,h};
	/**
	 * Construction d'une coordonnée à partir d'une chaine de caractère de type :
	 * lettre_chiffre : a1, f5 ...
	 * @param cd
	 */
	public ChessCoord(String coord) {
		if (!Tools.isSet(coord)) {
			throw new InvalidParameterException("le paramètre doit être de la forme {a|b|c|d|e|f|g|h}{[1..8]}");
		}
		y = coord.substring(0, 1);
		x = coord.substring(1);
	}
	@Override
	public int getX() {
		return Integer.parseInt(x)-1; // -1 car la base est 0
	}
	@Override
	public int getY() {
		return ordonnee.valueOf(y).ordinal();
	}
}
